Identifying and Displaying User Status Information

ABSTRACT

A method identifies multiple contacts associated with a user, where the user and the multiple contacts are associated with a common mobile service. A relationship is defined between the user and each of the multiple contacts by the common mobile service. Each of the multiple contacts is monitored automatically by the common mobile service to obtain user information. A mobile device associated with the user displays the current user information associated with at least a portion of the multiple contacts.

BACKGROUND

The use of mobile devices, such as cell phones, smart phones, and thelike is growing at a fast pace. Users of mobile devices communicate viavoice conversations, text messages, instant messages, email messages,and so forth. As the usage of mobile devices increases, users areseeking new ways to communicate with friends, family members, andco-workers in an efficient manner.

Existing mobile devices support contact lists (also referred to as“address books”) of people that are contacted by the user on a regularbasis. These contact lists identify multiple individuals or entitiesthat the user frequently calls, emails, sends text messages, orotherwise communicates. Contact lists simplify the initiation of calls,emails, text messages and other communications by allowing the user toidentify a particular contact from the list and initiate communicationby activating a few buttons on the mobile device. However, existingmobile devices do not support the automatic identification and displayof status information associated with one or more individuals in thecontact list. Such status information would benefit a user by allowingthe user to determine an appropriate time to contact a particularindividual in the contact list.

It is therefore desirable to provide an improved system and method forautomatically identifying and displaying an individual's statusinformation on a mobile device.

BRIEF DESCRIPTION OF THE DRAWINGS

Similar reference numbers are used throughout the figures to referencelike components and/or features.

FIG. 1 is a block diagram illustrating an example environment capable ofimplementing the systems and methods discussed herein.

FIG. 2 is a block diagram illustrating various components of a mobileservice.

FIG. 3 is a flow diagram illustrating an embodiment of a procedure forobtaining information associated with a user's friends.

FIG. 4 is a flow diagram illustrating an embodiment of a procedure forautomatically identifying a status associated with one or more friends.

FIG. 5 is a flow diagram illustrating an embodiment of a procedure fordisplaying information associated with one or more friends.

FIG. 6 is a flow diagram illustrating an embodiment of a procedure forautomatically exchanging data between two users.

FIG. 7A illustrates an example user interface on a mobile devicedisplaying the status of multiple friends.

FIG. 7B illustrates an example user interface on a mobile devicedisplaying information associated with a particular friend.

FIG. 7C illustrates an example user interface on a mobile devicedisplaying the approximate geographic location of multiple friends.

DETAILED DESCRIPTION

The systems and methods described herein provide systems and methods foridentifying and displaying user status information. The describedsystems and methods are capable of automatically identifying individualsand entities in a user's contact list that use a common mobile service.For those identified individuals and entities, the user's mobile devicecan display various location information, status information, and otherdata related to one or more individuals or entities.

As used herein, the term “mobile device” refers to any mobile (orportable) device capable of communicating with other devices via one ormore wireless communication links. Example mobile devices includecellular phones, smart phones, personal digital assistants (PDAs),laptop computers, handheld computers, tablet computers, portable mediadevices, handheld gaming devices, and any other portable communicationdevice.

FIG. 1 is a block diagram illustrating an example environment 100capable of implementing the systems and methods discussed herein.Environment 100 includes mobile devices 102, 104 and 106 (shown ascellular phones in this example). Mobile devices 102, 104 and 106communicate with other mobile devices via a network 108, which isimplemented using any wireless communication mechanism and anycommunication protocol. In a particular embodiment, network 108 is acombination of multiple wireless communication links between any numberof devices. Embodiments of network 108 include mobile networks, cellularnetworks, wifi networks, and the like.

Certain implementations of network 108 may include a public switchedtelephone network (PSTN) combined with one or more wirelesscommunication links or networks. Network 108 is capable of communicatingany type of information, such as voice communications, text data,graphics data, and so forth.

Environment 100 also includes a mobile service 110 that provides anynumber of services and features for mobile device users. In particularembodiments, mobile service 110 is a cellular phone service providerthat also provides one or more of the features discussed herein. Inother embodiments, mobile service 110 is an extension of an existingcellular phone service that provides additional features as describedherein.

Mobile service 110 is coupled to a database 112 that stores variousinformation, such as user information, contact lists, settings,preferences, and other data used during the operation of mobile service110. Additional details regarding the operation of mobile service 110are provided below.

As shown in FIG. 1, environment 100 includes a data source 114 that isaccessible by mobile devices 102, 104, 106 and mobile service 110 vianetwork 108. Data source 114 includes any type of data, such as userinformation, event information, geographic information (e.g., maps), andso forth. In certain embodiments, the information accessible from datasource 114 is used by mobile service 110 to provide the featuresdescribed herein. Mobile devices 102, 104, 106 maintain various contactinformation 116 associated with friends, family members, and otherindividuals or entities that have a relationship with the user of themobile device. Contact information 116 includes, for example, names,phone numbers, email addresses, physical addresses, text addresses,photographs, birthdays, and other information. A typical mobile device102, 104, 106 contains contact information for multiple individuals andentities. As discussed herein, contact information 116 is useful inidentifying and displaying user status information. A particularimplementation of environment 100 may include any number of mobiledevices 102, 104, 106, any number of mobile services 110, and any numberof data sources 114.

FIG. 2 is a block diagram illustrating various components of mobileservice 110, which includes a communication module 202, a processor 204,and a memory 206. Communication module 202 allows mobile service 110 tocommunicate with other devices and systems, such as mobile devices 102,104, 106 shown in FIG. 1. Processor 204 executes various instructions toimplement the functionality provided by mobile service 110. Memory 206stores these instructions as well as other data used by processor 204and other modules contained in mobile service 110.

Mobile service 110 also includes user information 208, such as username, profile information, contact list, and so forth. A statusmanagement module 210 maintains status information with any number ofcontacts in a user's contact list. This status information may include acontact's geographic location, the contact's mobile device status (e.g.,“On”, “Off” or “Busy”), the contact's availability status (e.g.,“available”, “unavailable” or “Do Not Disturb”), and the like. A statusdisplay module 212 generates data necessary to display statusinformation associated with one or more individuals on any number ofmobile devices.

A photo management module 214 in mobile service 110 manages userphotographs, avatars, and other video information used in displayingstatus information and other data on a mobile device. A GPS module 216manages maps and other GPS-related information to allow a mobile deviceto display GPS data as well as the location of one or more individualsdisposed on the display of GPS data. A synchronization module 218synchronizes user data and other information between mobile service 110and multiple mobile devices. A hash function module 220 encodes anddecodes hash values (also referred to as “hash codes”) communicated toand from multiple devices. Hash values are used to protect the securityof the underlying data (i.e., the data associated with the hash value).By using hash values instead of the actual data, the actual data is notexposed during communication between mobile service 110 and the mobiledevices. A search engine 222 identifies additional user informationbased on known information such as name, phone number, email address,and so forth. For example, if a user identifies a friend as having aspecific phone number, search engine 222 can locate that friend's systemidentifier (in mobile service 110), name, and other informationmaintained by the mobile service.

FIG. 3 is a flow diagram illustrating an embodiment of a procedure 300for obtaining information associated with a user's friends, such asentries in the user's contact list. Initially, a user posts profileinformation with a mobile service (block 302), and initiates a requestfor information related to their friends using the same mobile service(block 304). The mobile service receives the request and determineswhich of the user's friends are using the mobile service (block 306).This determination can be performed, for example, by identifying amobile service user having the appropriate phone number or otheridentifying information.

The mobile service then identifies an internal identifier associatedwith friends who are using the mobile service and communicates thatinternal identifier to the user's mobile device (block 308). The mobileservice stores information regarding the relationship between the userand friends who are using the mobile service (block 310). The mobileservice also determines a status associated with each of the friends whoare using the mobile service (block 312), and communicates the statusinformation to the appropriate mobile device. The mobile device receivesthe status information from the mobile service and displays the statusinformation to the user of the mobile device (block 314). The mobiledevice may also display other information regarding the displayedfriend, such as a photograph, nickname, and the like. The mobile servicethen communicates the status associated with the user to one or morefriends of the user for display on the friends' mobile device (block316).

The procedure of FIG. 3 can be initiated manually by a user or can beconfigured to occur automatically, such that the procedure istransparent to the users of the mobile service. In a particularembodiment, user data or contact information communicated between amobile device and the mobile service is sent as a hash value. A hashvalue is a mathematical function that converts a large amount of datainto a smaller data element. A hash value also provides security for theoriginal data because the original data cannot be easily determined fromthe hash value without knowledge of the hash function (e.g., algorithm)used to generate the hash value.

In one embodiment, the user's friend information (e.g., contact list) isnot stored by the mobile service. Instead, the mobile service uses thefriend information to identify friends of the user that also use themobile service. The mobile service notes that relationship, but does notstore the friend's information. In other embodiments, the mobile servicestores the friend information as a backup for the user. In thisembodiment, if the user loses the contact information stored in theirmobile device, the contact information can be restored from the mobileservice.

FIG. 4 is a flow diagram illustrating an embodiment of a procedure 400for automatically identifying a status associated with one or morefriends. Initially, a user establishes a connection with a mobileservice (block 402), and the mobile service identifies friendsassociated with the user (block 404). The mobile service then determineswhich of the user's friends are using the mobile service (block 406).For those friends that are using the mobile service, the mobile servicedetermines a status associated with each of the friends (block 408) andstores that status information for future reference (block 410). Themobile device then receives the status information and displays thestatus information to the user of the mobile device (block 412).Finally, the mobile device communicates the status associated with theuser to each of the friends for display on the friends' mobile device(block 414). In a particular embodiment, after the user establishes aconnection with the mobile service, the remaining portions of procedure400 are performed automatically by the mobile service (e.g., transparentto the user).

FIG. 5 is a flow diagram illustrating an embodiment of a procedure 500for displaying information associated with one or more friends.Initially, the procedure identifies a first friend associated with auser that is using the same mobile service (block 502), and displays thename of the friend and/or the friend's internal identifier or nickname(block 504). Procedure 500 then determines whether the friend's mobiledevice is currently activated (block 506). If the friend's mobile deviceis not activated, the procedure branches to block 510 to display thefriend's current status as “not active” (block 510).

If, at block 508, the friend's mobile device is activated, the proceduredisplays the friend's current status as “active” (block 512). Procedure500 continues by determining the geographic location of the friend'smobile device (block 514) and displays the friend's current geographiclocation on the mobile device (block 516). Next, the procedure displaysa “contact this friend” button or link on the mobile device (block 518).If there are additional friends in the user's contact list, theprocedure identifies the next friend associated with the user andreturns to block 504 to display the name of the friend. If there are noadditional friends in the user's contact list, the procedure ends.

FIG. 6 is a flow diagram illustrating an embodiment of a procedure 600for automatically exchanging data between two users—named Alice and Bobin this example. Initially, an application program on Alice's mobiledevice identifies Alice's public personal data (e.g., her mobile phonenumber) and communicates that data to a mobile service (block 602). Themobile service stores Alice's public personal data to a database (block604). An application program on Bob's mobile device identifiesinformation related to Bob's friends (block 606) and communicatesnon-confidential information regarding Bob's friends to the mobileservice (block 608). In this example, Alice is one of Bob's friends. Themobile service then searches for internal identifiers associated withBob's friends (block 610). Bob's friends will have associated internalidentifiers in the mobile service if they are users (e.g., subscribers)of the mobile service. The results of the search for internalidentifiers associated with Bob's friends are communicated to Bob'smobile device (block 612).

The application program on Bob's mobile device updates information andassociations for Bob's friends (block 614) based on information receivedfrom the mobile service. Since Alice is one of Bob's friends, and Aliceuses the same mobile service, Bob can now monitor the status of Alice,easily send her communications, monitor Alice's geographic location, andso forth using the mobile service (block 616).

In a particular embodiment, procedure 600 is performed automatically bythe mobile service and the application program executing on Bob's mobiledevice (e.g., the procedure is performed transparently to Alice andBob).

FIG. 7A illustrates an example user interface 702 on a mobile devicedisplaying the status of multiple friends. User interface 702 displaysstatus information for five friends (John Smith, Susan Jones, Bob Olson,Fred Jackson and Karen Johnson), as well as a photograph of each friendand a “contact” button for each friend. Additional information displayedabout the friends includes a nickname (e.g., Johnny77 and SuzieQ), acurrent status of the friend (Active, Not Active, On Call and Do NotDisturb), and a current geographic location (City Center, NorthfieldMall, Main St. & First Ave, and Downtown). User interface 702 alsoincludes scroll buttons at the bottom of the interface to scroll throughthe list of friends.

When a user of the mobile device displaying user interface 702 activatesone of the “contact” buttons associated with a friend, the userinterface changes to display information associated with the particularfriend, such as the user interface shown in FIG. 7B.

FIG. 7B illustrates an example user interface 704 on a mobile devicedisplaying information associated with a particular friend. Userinterface 704 displays information about the friend as well as buttonsthat initiate a call to the friend, generate a text message, email thefriend, or send status information to the friend (e.g., the user of themobile device sends their current status information to the frienddisplayed in user interface 704. The user interface shown in FIG. 7Balso includes a “Back to Summary” button that changes the user interfaceback to a summary list of the type shown in FIG. 7A.

FIG. 7C illustrates an example user interface 706 on a mobile devicedisplaying the approximate geographic location of multiple friends. Inthis example, user interface 706 shows the approximate geographiclocation of three friends (John Smith, Karen Johnson, and Bob Olson).Additionally, user interface 706 displays the approximate geographiclocation of the user of the mobile device. As the user of the mobiledevice or any of the friends move geographically, their correspondingposition is changed in user interface 706. Additionally, if a new friendactivates their mobile device or comes in range of the map displayed onuser interface 706, that friend's approximate geographic location willbe displayed on the user interface.

As discussed herein, the invention may involve a number of functions tobe performed by a computer processor, such as a microprocessor. Themicroprocessor may be a specialized or dedicated microprocessor that isconfigured to perform particular tasks according to the invention, byexecuting machine-readable software code that defines the particulartasks embodied by the invention. The microprocessor may also beconfigured to operate and communicate with other devices such as directmemory access modules, memory storage devices, Internet relatedhardware, and other devices that relate to the transmission of data inaccordance with the invention. The software code may be configured usingsoftware formats such as Java, C++, XML (Extensible Mark-up Language)and other languages that may be used to define functions that relate tooperations of devices required to carry out the functional operationsrelated to the invention. The code may be written in different forms andstyles, many of which are known to those skilled in the art. Differentcode formats, code configurations, styles and forms of software programsand other means of configuring code to define the operations of amicroprocessor in accordance with the invention will not depart from thespirit and scope of the invention.

Within the different types of devices, such as laptop or desktopcomputers, hand held devices with processors or processing logic, andcomputer servers or other devices that utilize the invention, thereexist different types of memory devices for storing and retrievinginformation while performing functions according to the invention. Cachememory devices are often included in such computers for use by thecentral processing unit as a convenient storage location for informationthat is frequently stored and retrieved. Similarly, a persistent memoryis also frequently used with such computers for maintaining informationthat is frequently retrieved by the central processing unit, but that isnot often altered within the persistent memory, unlike the cache memory.Main memory is also usually included for storing and retrieving largeramounts of information such as data and software applications configuredto perform functions according to the invention when executed by thecentral processing unit. These memory devices may be configured asrandom access memory (RAM), static random access memory (SRAM), dynamicrandom access memory (DRAM), flash memory, and other memory storagedevices that may be accessed by a central processing unit to store andretrieve information. During data storage and retrieval operations,these memory devices are transformed to have different states, such asdifferent electrical charges, different magnetic polarity, and the like.Thus, systems and methods configured according to the invention asdescribed herein enable the physical transformation of these memorydevices. Accordingly, the invention as described herein is directed tonovel and useful systems and methods that, in one or more embodiments,are able to transform the memory device into a different state. Theinvention is not limited to any particular type of memory device, or anycommonly used protocol for storing and retrieving information to andfrom these memory devices, respectively.

Embodiments of the system and method described herein facilitate theidentification and display of information associated with one or moreusers. Additionally, some embodiments are used in conjunction with oneor more conventional mobile services, mobile devices, or otherinformation display systems and methods. For example, one embodiment isused as an improvement of existing mobile services and mobile devices.

Although the components and modules illustrated herein are shown anddescribed in a particular arrangement, the arrangement of components andmodules may be altered to identify, retrieve, and display information ina different manner. In other embodiments, one or more additionalcomponents or modules may be added to the described systems, and one ormore components or modules may be removed from the described systems.Alternate embodiments may combine two or more of the describedcomponents or modules into a single component or module.

Although specific embodiments of the invention have been described andillustrated, the invention is not to be limited to the specific forms orarrangements of parts so described and illustrated. The scope of theinvention is to be defined by the claims appended hereto and theirequivalents.

1. A method comprising: identifying a plurality of contacts associatedwith a user, wherein the user and the plurality of contacts areassociated with a common mobile service; defining a relationship betweenthe user and each of the plurality of contacts by the common mobileservice; monitoring each of the plurality of contacts automatically bythe common mobile service to obtain current user information; anddisplaying the current user information associated with at least aportion of the plurality of contacts on a mobile device associated withthe user.
 2. A method as recited in claim 1 wherein the current userinformation includes an identification of whether the particular contactis available to communicate via the mobile service.
 3. A method asrecited in claim 1 further comprising displaying a geographic locationassociated with at least a portion of the plurality of contacts on themobile device associated with the user.
 4. A method as recited in claim1 further comprising displaying an alternate identifier associated withat least a portion of the plurality of contacts on the mobile deviceassociated with the user.
 5. A method as recited in claim 1 whereindisplaying the current user information includes displaying an option tocommunicate with each of the displayed contacts.
 6. A method as recitedin claim 1 wherein monitoring each of the plurality of contacts includescommunicating a contact identifier associated with each of the pluralityof contacts to the mobile service.
 7. A method as recited in claim 1wherein monitoring each of the plurality of contacts includes:calculating a hash code for a contact identifier associated with each ofthe plurality of contacts; and communicating the hash code for eachcontact identifier to the mobile service.
 8. A method as recited inclaim 1 wherein monitoring each of the plurality of contacts includes:communicating a contact identifier associated with each of the pluralityof contacts to the mobile service; and receiving status informationassociated with each of the plurality of contacts from the mobileservice.
 9. A method comprising: establishing communication between auser and a mobile service; identifying a plurality of friends associatedwith the user and associated with the mobile service; determining astatus associated with each of the identified friends; communicating thestatus associated with at least one of the identified friends to theuser; and communicating a status associated with the user to at leastone of the identified friends.
 10. A method as recited in claim 9wherein communicating the status associated with at least one of theidentified friends to the user includes communicating a hash codeassociated with the status.
 11. A method as recited in claim 9 whereindata communicated between the mobile service and the user iscommunicated in the form of a hash code.
 12. A method as recited inclaim 9 further comprising determining an approximate geographiclocation associated with each of the identified friends.
 13. A method asrecited in claim 9 further comprising displaying the status associatedwith at least one of the identified friends.
 14. A method comprising:establishing communication between a user and a mobile service;identifying a plurality of friends associated with the user andassociated with the mobile service; determining a current informationassociated with each of the identified friends; calculating a first hashcode for an identifier associated with a particular friend;communicating the first hash code to the user; communicating the currentinformation associated with the particular friend to the user;calculating a second hash code associated with the current informationassociated with the user; and communicating the second hash code to atleast one of the identified friends.
 15. A method as recited in claim 14wherein the current information associated with the particular friendincludes an identification of whether the particular friend is availableto communicate via the mobile service.
 16. A method as recited in claim14 further comprising communicating an approximate geographic locationof the particular friend to the user.
 17. A method as recited in claim14 further comprising communicating an approximate geographic locationof the user to at least one of the identified friends.